﻿using Elysium.Demo.Ventas;
using SIIE_ERP.BaseDatos.Configuracion.Empresa.PagoLicencias;
using SIIE_ERP.Codigo;
using SIIE_ERP.Codigo.Configuracion.PagoLicencias;
using SIIE_ERP.Codigo.Ventas;
using System;
using System.Collections.Generic;
using System.Data;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Elysium.Demo.Configuracion
{
    /// <summary>
    /// Interaction logic for Timbres_Consulta.xaml
    /// </summary>
    public partial class Timbres_Consulta : UserControl
    {
        private UsuarioActivo _sesion;

        public Timbres_Consulta(ref UsuarioActivo usuario)
        {
            InitializeComponent();
            this._sesion = usuario;

            CargarDatos();
        }
        public void CargarDatos()
        {

            if (WebServicesClass.CheckConnection())
            {//
                Licencias licencia = new Licencias();
                if (licencia.validacionLicenciaPerpetua(_sesion.RFC))
                {
                    //Caso cuando la licencia es perpetua
                    var fechaLicenciaPerpetua = ValidacionTimbrado.fechaLicenciaPerpetua(_sesion.RFC);

                    if ((DateTime.Now.Year - Convert.ToDateTime(fechaLicenciaPerpetua.Field<string>("fecha")).Year) < 1)
                    {
                        TimbresPagoLabel.Content = "Actualmente cuenta con timbres Ilimitados con una fecha de vencimiento del " + Convert.ToDateTime(fechaLicenciaPerpetua.Field<string>("fecha").ToString()).ToShortDateString();
                    }
                    else
                    {
                        int aux = WebServicesClass.NumeroTimbres(_sesion.RFC);
                        String[] fechaPartida = WebServicesClass.fechaVencimiento(_sesion.RFC).ToString().Split('|');
                        DateTime vencimiento = new DateTime(Convert.ToInt32(fechaPartida[0]), Convert.ToInt32(fechaPartida[1]), Convert.ToInt32(fechaPartida[2]));

                        if (DateTime.Now < vencimiento)
                        {
                            TimbresPagoLabel.Content = "Actualmente cuenta con timbres Ilimitados con una fecha de vencimiento del " + vencimiento.ToShortDateString().ToString();
                        }
                        else
                        {
                            TimbresPagoLabel.Content = "Actualmente sus timbres han Caducado";
                            controles();
                        }

                    }
                }
                else
                {
                    //CUando la licencia es anual o mensual
                    var fechaLicenciaAnualMensual = ValidacionTimbrado.fechaLicenciaAnualMensual(_sesion.RFC);
                    string fecha = (Convert.ToDateTime(fechaLicenciaAnualMensual.Field<string>("fecha")).ToShortDateString()).ToString();

                    if (DateTime.Now > Convert.ToDateTime(fechaLicenciaAnualMensual.Field<string>("fecha")))
                    {
                        TimbresPagoLabel.Content = "Actualmente sus timbres han Caducado";
                        controles();
                    }
                    else
                    {
                        TimbresPagoLabel.Content = "Actualmente cuenta con timbres Ilimitados con una fecha de vencimiento del " + (Convert.ToDateTime(fechaLicenciaAnualMensual.Field<string>("fecha")).ToShortDateString()).ToString();
                    }
                }
            }
            else
            {
                TimbresPagoLabel.Visibility = System.Windows.Visibility.Visible;
            }
        }


        private void ButtonInformacion_Click_1(object sender, RoutedEventArgs e)
        {
            WindowAyuda Ayuda = new Elysium.Demo.WindowAyuda("Timbres.htm", "Ayuda");
            Ayuda.Owner = SIIE_ERP.View.NavegacionUI.GetParentWindow(this); Ayuda.ShowDialog();
        }

        private void Button_Comprar_Click_1(object sender, RoutedEventArgs e)
        {

            // double CostoTotal = 0;
            try
            {
                string key = CampoLicencia.Text;
                if (String.IsNullOrEmpty(key))
                {
                    MessageBox.Show("Tiene que poner una La llave valida.");
                    return;
                }

                if (!WebServicesClass.CheckConnection())
                {
                    MessageBox.Show("Se necesita conexión a internet para realizar el pago de las licencias");
                    return;
                }


                //Servicio para añadir los timbres
                if (WebServicesClass.AnadirTimbres(_sesion.RFC, key))
                {
                    MessageBox.Show("Se han añadido los timbres correctamente");
                    CargarDatos();
                }
                else
                {
                    MessageBox.Show("La llave ya fue usada o es inválida");
                }
            }
            catch (Exception)
            {

                MessageBox.Show("Se necesita conexión a internet para realizar el pago de las licencias");
                return;
            }
        }

        private void controles()
        {
            Button_Comprar.Visibility = System.Windows.Visibility.Visible;
            licenciaLabel.Visibility = System.Windows.Visibility.Visible;
            ejemploLabel.Visibility = System.Windows.Visibility.Visible;
            CampoLicencia.Visibility = System.Windows.Visibility.Visible;
        }
        private void ButtonRegresar_Click(object sender, RoutedEventArgs e)
        {
            (this.Parent as ScrollViewer).Content = null;
        }
    }
}
